import { EggContext, Next } from '@eggjs/tegg';

import jwt from 'jsonwebtoken';

export async function tokenVerification(ctx: EggContext, next: Next) {
  const { 'x-token': token } = ctx.header;
  if (!token) {
    ctx.body = {
      code: 401,
      msg: '未登录',
      data: {},
    };
    return;
  }
  const { exp } = await jwt.verify(token, ctx.app.config.jwt.secret);
  const datenow = new Date().getTime();
  if (exp * 1000 < datenow) {
    ctx.body = {
      code: 401,
      msg: '登录态失效',
      data: {},
    };
    return;
  }
  await next();

}

// module.exports = app => {
//   return async function tokenVerification(ctx, next) {
//     const { 'x-token': token } = ctx.header;
//     const decode = await app.jwt.verify(token, app.config.jwt.secret);
//     console.log(decode);
//     if (!token) {
//       ctx.body = {
//         code: 401,
//         msg: '未登录',
//         data: {},
//       };
//       return;
//     }
//     await next();
//   };
// };
